package ve.com.wayoyo.wuml_case.DibujoDiagramas;

import ve.com.wayoyo.wuml_case.NuevoDiagrama;

public class FactoryComponente {
	public static Componente getComponente(String tipo) {
		Componente componente = null;
		if (tipo.equals("Clase")) {
			componente = new CompClase("");
		} else if (tipo.equals("Interface")) {
			componente = new CompInterface("");
		} else if (tipo.equals("Abstract")) {
			componente = new CompAbstract("");
		} else if (tipo.equals("Entidad")) {
			componente = new CompEntidad("");
		} else if (tipo.equals("Nodo")) {
			componente = new CompNodo();
		} else if (tipo.equals("CasoDeUso")) {
			componente = new CompCasoUso();
		} else if (tipo.equals("Actor")) {
			componente = new CompActor();
		} else if (tipo.equals("Actividad")) {
			componente = new CompActividad();
		} else if (tipo.equals("Decision")) {
			componente = new CompDecision();
		} else if (tipo.equals("BarraActividad")) {
			componente = new CompBarra();
		} else if (tipo.equals("InicioAct")) {
			componente = new CompInicioFin();
			((CompInicioFin) componente).setMode(CompInicioFin.MODO_INICIO);
		} else if (tipo.equals("FinAct")) {
			componente = new CompInicioFin();
			((CompInicioFin) componente).setMode(CompInicioFin.MODO_FIN);
		} else if (tipo.equals("Objeto")) {
			componente = new CompObjeto();
		} else if (tipo.equals("LifeBar")) {
			componente = new CompLifeBar();
		} else if (tipo.equals("CuadroTexto")) {
			componente = new CompTexto();
		}
		return componente;
	}

	public static int getMenu(Componente actual) {
		int respuesta = -1;
		if (actual instanceof CompClase) {
			respuesta = NuevoDiagrama.MENU_CLASE;
		} else if (actual instanceof CompInterface) {
			respuesta = NuevoDiagrama.MENU_INTERFACE;
		} else if (actual instanceof CompAbstract) {
			respuesta = NuevoDiagrama.MENU_ABSTRACT;
		} else if (actual instanceof CompEntidad) {
			respuesta = NuevoDiagrama.MENU_ENTIDAD;
		} else if (actual instanceof CompSubEntidad) {
			respuesta = NuevoDiagrama.MENU_ENTIDAD;
		} else if (actual instanceof CompNodo) {
			respuesta = NuevoDiagrama.MENU_NODO;
		} else if (actual instanceof CompCasoUso) {
			respuesta = NuevoDiagrama.MENU_CASODEUSO;
		} else if (actual instanceof CompActor) {
			respuesta = NuevoDiagrama.MENU_ACTOR;
		} else if (actual instanceof CompDecision) {
			respuesta = NuevoDiagrama.MENU_DECISION;
		} else if (actual instanceof CompActividad) {
			respuesta = NuevoDiagrama.MENU_ACTIVIDAD;
		} else if (actual instanceof CompBarra) {
			respuesta = NuevoDiagrama.MENU_BARRA_ACTIVIDAD;
		} else if (actual instanceof CompInicioFin) {
			if (((CompInicioFin) actual).getMode() == CompInicioFin.MODO_INICIO) {
				respuesta = NuevoDiagrama.MENU_INICIO_ACTIVIDAD;
			} else {
				respuesta = NuevoDiagrama.MENU_FIN_ACTIVIDAD;
			}
		} else if (actual instanceof CompObjeto) {
			respuesta = NuevoDiagrama.MENU_OBJETO;
		} else if (actual instanceof CompLifeBar) {
			respuesta = NuevoDiagrama.MENU_LIFE_BAR;
		} else if (actual instanceof CompTexto) {
			respuesta = NuevoDiagrama.MENU_CUADRO_TEXTO;
		}

		return respuesta;
	}
}
